package com.lezijie.seckill.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 返回值工具类
 * @author 孙志鹏
 * @createDate 2021-10-23 20:59
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RespBean {
    /**
     * 返回码
     */
    private long code;
    /**
     * 返回消息
     */
    private String message;
    /**
     * 返回数据
     */
    private Object obj;

    /**
     * 成功返回结果
     * @return 返回当前对象
     */
    public static RespBean success() {
        return new RespBean(RespBeanEnum.SUCCESS.getCode(),RespBeanEnum.SUCCESS.getMessage(), null);
    }

    /**
     * 添加返回结果
     * @param obj 返回数据
     * @return 返回当前对象
     */
    public static RespBean success(Object obj) {
        return new RespBean(RespBeanEnum.ERROR.getCode(), RespBeanEnum.ERROR.getMessage(), obj);
    }

    /**
     * 失败返回结果
     * @param respBeanEnum 枚举返回各种状态
     * @return 返回对象结果
     */
    public static RespBean error(RespBeanEnum respBeanEnum) {
        return new RespBean(respBeanEnum.getCode(), respBeanEnum.getMessage(), null);
    }

    /**
     * 失败的返回结果
     * @param respBeanEnum 枚举返回各种状态
     * @param obj 返回的数据
     * @return 返回对象结果
     */
    public static RespBean error(RespBeanEnum respBeanEnum, Object obj) {
        return new RespBean(respBeanEnum.getCode(), respBeanEnum.getMessage(), obj);
    }
}
